home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / mcu332 / 332doc.arc / 332BUGC5 < prev    next >
Text File  |  1989-12-19  |  29KB  |  964 lines

  1.                                                                       
  2.   DEBUG MONITOR USER'S MANUAL    MOTOROLA
  3.   6-1     M68332BUG
  4.  
  5.                                                                       
  6.   DEBUG MONITOR USER'S MANUAL    MOTOROLA
  7.   M68332BUG    6-1
  8.  
  9.  
  10. CHAPTER 6
  11.  
  12. 332Bug DIAGNOSTIC FIRMWARE GUIDE 
  13.  
  14.  
  15.  
  16. 6.1  INTRODUCTION
  17.  
  18. This diagnostic guide contains operation information for the 332Bug Diagnostic Firmware 
  19. Package, hereafter referred to as 332Diag.  Paragraph 6.3 describes utilities available to the 
  20. user.  Paragraphs 6.4 through 6.6 are guides to using each test.
  21.  
  22.  
  23. 6.2  DIAGNOSTIC MONITOR 
  24.  
  25. The tests described herein are called via a common diagnostic monitor, hereafter called 
  26. monitor.  This monitor is command-line driven and provides input/output facilities, command 
  27. parsing, error reporting, interrupt handling, and a multi-level directory.
  28.  
  29. 6.2.1  Monitor Start-Up 
  30.  
  31. At the 332Bug> prompt, enter SD to switch to the diagnostics directory.  The Switch 
  32. Directories (SD) command is described elsewhere in this chapter.  The prompt should now 
  33. read 332Diag>.
  34.  
  35. 6.2.2  Command Entry and Directories 
  36.  
  37. Enter commands at the 332Diag> prompt.  The command name is entered before pressing 
  38. the carriage return <CR>.  Multiple commands may be entered.  If a command expects 
  39. parameters and another command is to follow it, separate the two with an exclamation point 
  40. (!).  For instance, to execute the MT B command after the MT A command, the command line 
  41. would read MT A ! MT B.  Spaces are not required but are shown here for legibility.  Several 
  42. commands may be combined on one line.
  43.  
  44. Commands are listed in the diagnostic directory.  Some commands have sub-command 
  45. which are listed in the directory for that particular command (see example below).
  46.  
  47.  
  48.  
  49.                                             
  50.  
  51. To execute a particular test, for example CPU, enter CPU X (X = the desired sub-command).  
  52. This command causes the monitor to find the CPU subdirectory, and then execute the 
  53. specified command from that subdirectory.
  54.  
  55.  
  56. EXAMPLES:
  57.  
  58. Single-Level Commands    HE        Help
  59.     DE        Display Error Counters
  60. Two-Level Commands    CPU        CPU Tests for the MC68332
  61.         A        Register Test 
  62.  
  63.  
  64. 6.2.3  Help (HE)
  65.  
  66. On-line documentation is provided in the form of a Help command (syntax: HE [command 
  67. name]).  This command displays a menu of the top level directory if no parameters are 
  68. entered, or a menu of each subdirectory if the name of that subdirectory is entered.  For 
  69. example, to bring up a menu of all the memory tests, enter HE MT.  When a menu is too long 
  70. to fit on the screen, it pauses until the operator presses the carriage return (<CR>) before 
  71. displaying the next screen.
  72.  
  73.  
  74. 6.2.4  Self Test (ST)
  75.  
  76. The monitor provides an automated test mechanism called self test.  Entering ST + command 
  77. causes the monitor to run only the tests included in that command.  Entering ST - command 
  78. runs all the tests included in an internal self-test directory except the command listed.  ST 
  79. without any parameters runs the entire directory, which contains most of the diagnostics.
  80.  
  81. Each test for each particular command is listed in the paragraph pertaining to the command.
  82.  
  83.  
  84. 6.2.5  Switch Directories (SD)
  85.  
  86. To exit the diagnostic directory (and disable the diagnostic tests), enter SD.  This terminates 
  87. the diagnostic commands and initializes the 332Bug commands.  When in the 332Bug 
  88. directory, the prompt is 332Bug>.  To return to the diagnostic directory, enter the SD 
  89. command.  When in the diagnostic directory, the prompt is 332Diag>.  This feature allows 
  90. the user to access 332Bug without the diagnostics being visible.
  91.  
  92.  
  93. 6.2.6  Loop-On-Error Mode (LE)
  94.  
  95. Use the Loop-on-error mode (LE) to endlessly repeat a test at the point where an error is 
  96. detected.  This is useful when using a logic analyzer to trouble-shoot test failures.  Enter LE 
  97. and the test name to loop on errors encountered during the test.
  98.  
  99. 6.2.7  Stop-On-Error Mode (SE)
  100.  
  101. Use the stop-on-error mode (SE) to halt a test at the point where an error is detected.  Enter 
  102. SE then the test mnomonic to stop on errors encountered during the test.
  103.  
  104.  
  105. 6.2.8  Loop-Continue Mode (LC)
  106.  
  107. Use loop-continue mode (LC) to endlessly repeat a test or series of tests.  This command 
  108. repeats testing of everything on the command line.  To terminate the loop, press the BREAK 
  109. key on the diagnostic video display terminal.  Certain tests disable the BREAK key interrupt, 
  110. so pressing the ABORT or RESET switches on the M68332PFB platform board may become 
  111. necessary.
  112.  
  113. EXAMPLE:
  114.  
  115. 332Diag>LC ST<CR>    Repeats self test (ST) command to continuously test 
  116. the system.
  117.  
  118.  
  119. 6.2.9  Non-Verbose Mode (NV)
  120.  
  121. The diagnostics display a substantial number of error messages when an error is detected.  
  122. Non-verbose mode (NV) suppresses all messages except PASSED or FAILED.  At the 
  123. prompt enter NV, the test name, and <CR>.  NV ST MT causes the monitor to run the MT 
  124. self-test, but show only the names of the sub-tests and the results (pass/fail).
  125.  
  126.  
  127. 6.2.10  Display Error Counters (DE)
  128.  
  129. Each test in the diagnostic monitor has a dedicated error counter.  As errors are encountered 
  130. in a particular test, its error counter is incremented.  If one were to run a self-test or a series of 
  131. tests, the test results could be determined by examining the error counters.  Entering DE, the 
  132. test name, and a <CR> displays the results of a particular test.  Only nonzero values are 
  133. displayed.
  134.  
  135.  
  136. 6.2.11  Clear (Zero) Error Counters (ZE)
  137.  
  138. The error counters, at start-up, initialize to a value of zero, but it may be necessary to reset 
  139. them to zero after errors have accumilated.  The ZE command resets all error counters to 
  140. zero.  The error counters can be individually reset by entering the specific test name following 
  141. the command.  Example: ZE CPU A clears the error counter associated with CPU A.
  142.  
  143.  
  144. 6.2.12  Display Pass Count (DP)
  145.  
  146. A count of the number of passes in loop-continue mode is kept by the monitor.  This count is 
  147. displayed with other information at the conclusion of each pass.  To display this information 
  148. without using LC, enter DP.
  149.  
  150. 6.2.13  Zero Pass Count (ZP)
  151.  
  152. Executing this command resets the pass counter DP to zero.  This is frequently desirable 
  153. before entering a command that executes the loop-continue mode.  Entering this command 
  154. on the same line as LC results in the pass counter being reset every pass.
  155.  
  156.  
  157. 6.3  UTILITIES 
  158.  
  159. The monitor is supplemented by several utilities that are separate and distinct from the 
  160. monitor itself and the diagnostics.
  161.  
  162.  
  163. 6.3.1  Write Loop
  164.  
  165.     WL.<SIZE> [<ADDR> [<DEL><DATA>]]
  166.  
  167. The WL command executes a streamlined write of specified size to a specified memory 
  168. location.  This command is intended as a debugging aid once specific fault areas are 
  169. identified.  The write loop is very short in execution so measuring devices such as 
  170. oscilloscopes may be utilized in tracking failures.  Pressing the BREAK key does not 
  171. terminate this command, but pressing the ABORT switch or RESET switch does.
  172.  
  173. Command size must be specified as B for byte, W for word, or L for longword.
  174.  
  175. The command requires two parameters: target address and data to be written.  The address 
  176. and data are both hexadecimal values and must not be preceded by a $.  To write $00 out to 
  177. address $10000, enter WL.B 10000 00.  The system prompts the user if either or both 
  178. parameters are omitted.
  179.  
  180.  
  181. EXAMPLES:
  182.  
  183. 332Bug>SD<CR>    Switch to diagnostic directory
  184. 332Diag>WR.W<CR>    Prompts for address and data to 
  185. which to write word value.
  186.  
  187. 332Diag>WR.B 40FC E6<CR>    Writes $E6 to $40FC
  188.  
  189. 332Diag>WR.W 800C 43F6<CR>    Writes $43F6 to $800C
  190.  
  191. 332Diag>WR.L 54F0 F8432191<CR>    Writes $F8432191 to $54F0
  192.  
  193.  
  194. 6.3.2  Read Loop
  195.  
  196.     RL.<SIZE> [<ADDR> [<DEL><DATA>]]
  197.  
  198. The RL command executes a streamlined read of specified size from a specified memory 
  199. location.  This command is intended as a debugging aid  once specific fault areas are 
  200. identified.  The read loop is very short in execution so measuring devices such as 
  201. oscilloscopes may be utilized in tracking failures.  Pressing the BREAK key does not 
  202. terminate this command, but pressing the ABORT switch or RESET switch does.
  203.  
  204. Command size must be specified as B for byte, W for word, or L for longword.
  205.  
  206. The command requires one parameter: target address.  The address is a hexadecimal value.  
  207. To read from address $10000, enter RL.B 10000.  The system prompts the user if the 
  208. parameter is omitted.
  209.  
  210.  
  211. EXAMPLES:
  212.  
  213. 332Diag>RL.B<CR>    Prompts for address from which to 
  214. read byte value
  215.  
  216. 332Diag>RL.W A000<CR>    Read longword at $A000
  217.  
  218.  
  219. 6.3.3  Write/Read Loop
  220.  
  221.     WR.<SIZE> [<ADDR> [<DEL><DATA>]]
  222.  
  223. The WR command executes a streamlined write and read of specified size to a specified 
  224. memory location.  This command is intended as a debugging aid  once specific fault areas 
  225. are identified.  The write/read loop is very short in execution so measuring devices such as 
  226. oscilloscopes may be utilized in tracking failures.  Pressing the BREAK key does not 
  227. terminate this command, but pressing the ABORT switch or RESET switch does.
  228.  
  229. Command size must be specified as B for byte, W for word, or L for longword.
  230.  
  231. The command requires two parameters: target address and data to be written.  The address 
  232. and data are both hexadecimal values and must not be preceded by a $.  To write $00 out to 
  233. address $10000 and read back, enter WR.B 10000 00.  The system prompts the user if 
  234. either or both parameters are omitted.
  235.  
  236.  
  237. EXAMPLE:
  238.  
  239. 332Diag>WR.W 8000 FFFFFFFF<CR>    Writes longword $FFFFFFFF to 
  240. location $8000 and reads it back
  241.  
  242.  
  243. CPU    CPU Tests For The MC68332    CPU
  244.  
  245.  
  246. 6.4  CPU TESTS FOR THE MC68332
  247.  
  248.  
  249. CPU tests are a series of diagnostics provided to test the MC68332 MPU, as listed in Table 6-
  250. 1.
  251.  
  252.  
  253.  
  254.  
  255. TABLE 6-1.  MC68332 CPU Diagnostic Tests 
  256.  
  257. MONITOR COMMAND    TITLE 
  258.  
  259.     CPU A    Register Test
  260.     CPU B    Instruction Test
  261.     CPU C    Address Mode Test
  262.     CPU D    Exception Processing Test 
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270. The normal procedure for correcting an CPU error is to replace the MC68332 micro-controller 
  271. unit.
  272.  
  273. CPU A    Register Test    CPU A 
  274.  
  275.  
  276. 6.4.1  Register Test
  277.  
  278. 332Diag>CPU A 
  279.  
  280. CPU A executes a thorough test of all the registers in the MC68332 chip, including checking 
  281. for bits stuck high or low.
  282.  
  283.  
  284. EXAMPLE:
  285.  
  286. After the command has been issued, the following line is printed: 
  287.  
  288. A    CPU Register test........................Running ----------> 
  289.  
  290. If any part of the test fails, then the display appears as follows.
  291.  
  292. A    CPU Register test........................Running ---------->.....  FAILED
  293. (error message) 
  294.  
  295. Here, (error message) is one of the following:
  296.  
  297. Failed DO-D7 register check
  298. Failed SR register check
  299. Failed USP/VBR/CAAR register check
  300. Failed CACR register check
  301. Failed AO-A4 register check
  302. Failed A5-A7 register check 
  303.  
  304. If all parts of the test are completed correctly, then the test passes.
  305.  
  306. A    CPU Register test........................Running ----------> PASSED 
  307.  
  308. CPU B    Instruction Test    CPU B
  309.  
  310.  
  311. 6.4.2  Instruction Test
  312.  
  313. 332Diag>CPU B 
  314.  
  315. CPU B tests various data movement, integer arithmetic, logical, shift and rotate, and bit 
  316. manipulation instructions of the MC68332 chip.
  317.  
  318.  
  319. EXAMPLE:
  320.  
  321. After the command has been issued, the following line is printed: 
  322.  
  323. B    CPU Instruction Test ....................Running ----------> 
  324.  
  325. If any part of the test fails, then the display appears as follows.
  326.  
  327. B    CPU Instruction Test.....................Running ---------->.....  FAILED
  328. (error message) 
  329.  
  330. Here, (error message) is one of the following:
  331.  
  332. Failed AND/OR/NOT/EOR instruction check
  333. Failed DBF instruction check
  334. Failed ADD or SUB instruction check
  335. Failed MULU or DIVU instruction check
  336. Failed BSET or BCLR instruction check
  337. Failed LSR instruction check
  338. Failed LSL instruction check
  339.  
  340. If all parts of the test are completed correctly, then the test passes.
  341.  
  342. B    CPU Instruction Test.....................Running ----------> PASSED 
  343.  
  344. CPU C    Address Mode Test    CPU C
  345.  
  346.  
  347. 6.4.3  Address Mode Test
  348.  
  349. 332Diag>CPU C 
  350.  
  351. CPU C tests the various addressing modes of the MC68332 chip.  These include absolute 
  352. address, address indirect, address indirect with post-increment, and address indirect with 
  353. index modes.
  354.  
  355.  
  356. EXAMPLE:
  357.  
  358. After the command has been issued, the following line is printed:.
  359.  
  360. C    CPU Address Mode test....................Running ----------> 
  361.  
  362. If any part of the test fails, then the display appears as follows.
  363.  
  364. C    CPU Address Mode test....................Running ---------->.....  FAILED
  365. (error message) 
  366.  
  367. (error message) is one of the following:
  368.  
  369. Failed Absolute Addressing check
  370. Failed Indirect Addressing check
  371. Failed Post increment check
  372. Failed Pre decrement check
  373. Failed Indirect Addressing with Index check
  374. Unexpected Bus Error at $XXXXXXXX 
  375.  
  376. If all parts of the test are completed correctly, then the test passes.
  377.  
  378. C    CPU Address Mode test....................Running ----------> PASSED 
  379.  
  380. CPU D    Exception Processing Test    CPU D
  381.  
  382.  
  383. 6.4.4  Exception Processing Test
  384.  
  385. 332Diag>CPU D
  386.  
  387. CPU D tests many of the exception processing routines of the MC68332, but not the interrupt 
  388. auto vectors or any of the floating point co-processor vectors.
  389.  
  390.  
  391. EXAMPLE:
  392.  
  393. After the command has been issued, the following line is printed: 
  394.  
  395. D    CPU Exception Processing Test............Running ----------> 
  396.  
  397. If any part of the test fails, then the display appears as follows.
  398.  
  399. D    CPU Exception Processing Test............Running ---------->-----FAILED
  400. Test Failed Vector # XXX 
  401.  
  402. # XXX is the hexadecimal exception vector offset, as explained in the CPU32 
  403. Reference Manual.
  404.  
  405. However, if the failure involves taking an exception different from that being 
  406. tested, the display is: 
  407.  
  408. D    CPU Exception Processing Test............Running ---------->.....  FAILED 
  409. Unexpected exception taken to Vector # XXX 
  410.  
  411. If all parts of the test are completed correctly, then the test passes.
  412.  
  413. D    CPU Exception Processing Test............Running ----------> PASSED 
  414.  
  415. MT    Memory Tests    MT
  416.  
  417.  
  418. 6.5  MEMORY TESTS (MT)
  419.  
  420. The memory tests are a series of diagonistics which verify random access memory 
  421. (read/write) that may or may not reside on the M68332EVS evaluation system.  Default is the 
  422. BCC on-board RAM.  To test off-board RAM, change Start and Stop Addresses per MT B and 
  423. MT C as described in the following paragraphs.  Memory tests are listed in Table 6-2.
  424.  
  425.  
  426. NOTE
  427.  
  428. If one or more memory tests are attempted at an address where there is no 
  429. memory, a bus error message appears, giving the details of the problem.
  430.  
  431.  
  432. TABLE 6-2.  Memory Diagnostic Tests 
  433.  
  434. MONITOR COMMAND    TITLE 
  435.  
  436.     MT A    Set Function Code
  437.     MT B    Set Start Address
  438.     MT C    Set Stop Address
  439.     MT D    Set Bus Data Width
  440.     MT E    March Address Test
  441.     MT F    Walk a Bit Test
  442.     MT G    Refresh Test
  443.     MT H    Random Byte Test
  444.     MT I    Program Test
  445.     MT J    TAS Test
  446.  
  447.  
  448.  
  449.  
  450.  
  451. The following hardware is required to perform these tests.
  452.  
  453. Ñ    M68332EVS - Module being tested
  454. Ñ    Video display terminal or host computer
  455.  
  456. MT A    Set Function Code    MT A
  457.  
  458.  
  459. 6.5.1  Set Function Code
  460.  
  461.     332Diag>MT A [new value]
  462.  
  463. MT A allows the user to select the function code in most of the memory tests.  The exceptions 
  464. to this are Program Test and TAS Test.
  465.  
  466.  
  467. EXAMPLE:
  468.  
  469. If the user supplied the optional new value, then the display appears as follows: 
  470.  
  471. 332Diag>MT A [new value]<CR>
  472. Function Code=<new value>
  473. 332Diag> 
  474.  
  475. If a new value was not specified by the user, then the old value is displayed all 
  476. and the user is allowed to enter a new value.
  477.  
  478.  
  479. NOTE
  480.  
  481. The default is Function Code=5, which is for on-board RAM.
  482.  
  483.  
  484. 332Diag>MT A<CR>
  485. Function Code=<current value> ?[new value]<CR>
  486. Function Code=<new value>
  487. 332Diag> 
  488.  
  489. This command may be used to display the current value without changing it by 
  490. pressing a carriage return <CR> without entering the new value.
  491.  
  492. 332Diag>MT A<CR>
  493. Function Code=<current value> ?<CR>
  494. Function Code=<current value>
  495. 332Diag> 
  496.  
  497. MT B    Set Start Address    MT B
  498.  
  499.  
  500. 6.5.2  Set Start Address
  501.  
  502.     332Diag>MT B [new value]
  503.  
  504. MT B allows the user to select the start address used by all of the memory tests.  For the 
  505. MVME332, it is suggested that address $00003000 be used.  Other addresses may be used, 
  506. but extreme caution should be used when attempting to test memory below this address.
  507.  
  508.  
  509. EXAMPLE:
  510.  
  511. If the user supplied the optional new value, then the display appears as follows: 
  512.  
  513. 332Diag>MT B [new value]<CR>
  514. Start Addr.=<new value>
  515. 332Diag> 
  516.  
  517. If a new value was not specified by the user, then the old value is displayed and 
  518. the user is allowed to enter a new value.
  519.  
  520. NOTE
  521.  
  522. The default is Start Addr.=00003000, which is for on-board RAM.
  523.  
  524. 332Diag>MT B<CR>
  525. Start Addr.=<current value> ?[new value]<CR>
  526. Start Addr.=<new value>
  527. 332Diag> 
  528.  
  529. This command may be used to display the current value without changing it by 
  530. pressing a carriage return <CR> without entering the new value.
  531.  
  532. 332Diag>MT B<CR>
  533. Start Addr.=<current value> ?<CR>
  534. Start Addr.=<current value>
  535. 332Diag> 
  536.  
  537.  
  538. NOTE
  539.  
  540. If a new value is specified, it is truncated to a longword boundary 
  541. and, if greater than the value of the stop address, replaces the stop 
  542. address.  The start address is never allowed higher in memory 
  543. than the stop address.  These changes occur before another 
  544. command is processed by the monitor.
  545.  
  546. MT C    Set Stop Address    MT C
  547.  
  548.  
  549. 6.5.3  Set Stop Address
  550.  
  551.     332Diag>MT C [new value]
  552.  
  553. MT C allows the user to select the stop address used by all of the memory tests.  The stop 
  554. address is the address where testing terminates, so the stop address must be set to the last 
  555. address +1.
  556.  
  557.  
  558. EXAMPLE:
  559.  
  560. If the user supplied the optional new value, then the display appears as follows: 
  561.  
  562. 332Diag>MT C [new value]<CR>
  563. Stop Addr.=<new value>
  564. 332Diag> 
  565.  
  566. If a new value was not specified by the user, then the old value is displayed and 
  567. the user is allowed to enter a new value.
  568.  
  569. NOTE
  570.  
  571. The default is Stop Addr.=00010000, which is the end of on-board 
  572. RAM.
  573.  
  574. 332Diag>MT C
  575. Stop Addr.=<current value> ?[new value]<CR>
  576. Stop Addr.=<new value>
  577. 332Diag> 
  578.  
  579. This command may be used to display the current value without changing it by 
  580. pressing a carriage return <CR> without entering the new value.
  581.  
  582. 332Diag>MT C
  583. Start Addr.=<current value> ?<CR>
  584. Start Addr.=<current value>
  585. 332Diag> 
  586.  
  587.  
  588. NOTE
  589.  
  590. If a new value is specified, it is truncated to a longword boundary 
  591. and, if less than the value of the start address, is replaced by the 
  592. start address.  The stop address is never allowed to be lower in 
  593. memory than the start address.  These changes occur before 
  594. another command is processed by the monitor.
  595.  
  596. MT D    Set Bus Data Width    MT D
  597.  
  598.  
  599. 6.5.4  Set Bus Data Width
  600.  
  601.     332Diag>MT D [new value: 0 for 16, 1 for 32]
  602.  
  603. MT D selects either 16-bit or 32-bit bus data accesses during the M68332Bug MT memory 
  604. tests.  The width is selected by entering zero for 16 bits or one for 32 bits.
  605.  
  606.  
  607. EXAMPLE:
  608.  
  609. If the user supplied the optional new value, then the display appears as follows: 
  610.  
  611. 332Diag>MT D [new value]<CR>
  612. Bus Width (32=1/16=0) =<new value>
  613. 332Diag> 
  614.  
  615. If a new value was not specified by the user, then the old value is displayed and 
  616. the user is allowed to enter a new value.
  617.  
  618.  
  619. NOTE
  620.  
  621. The default value is Bus Width (32=1/16=0) =1.
  622.  
  623.  
  624. 332Diag>MT D<CR>
  625. Bus Width (32=1/16=0) =<current value> ?[new value]<CR>
  626. Bus Width (32=1/16=0) =<new value>
  627. 332Diag> 
  628.  
  629. This command may be used to display the current value without changing it by 
  630. pressing a carriage return <CR> without entering the new value.
  631.  
  632. 332Diag>MT D<CR>
  633. Bus Width (32=1/16=0) =<current value> ?<CR>
  634. Bus Width (32=1/16=0) =<current value>
  635. 332Diag> 
  636.  
  637. MT E    March Address Test    MT E
  638.  
  639.  
  640. 6.5.5  March Address Test
  641.  
  642.     332Diag>MT E
  643.  
  644. MT E performs a march address test from Start Address to Stop Address.  The march 
  645. address test has been implemented in the following manner: 
  646.  
  647. Step 1    All memory locations from Start Address up to Stop Address are 
  648. cleared to 0.
  649.  
  650. Step 2    Beginning at Stop Address and proceeding downward to Start 
  651. Address, each memory location is checked for bits that did not clear 
  652. and then the contents are changed to all F's (all the bits are set).  This 
  653. process reveals address lines that are stuck high.
  654.  
  655. Step 3    Beginning at Start Address and proceeding upward to Stop Address, 
  656. each memory location is checked for bits that did not set and then the 
  657. memory location is again cleared to 0.  This process reveals address 
  658. lines that are stuck low.
  659.  
  660.  
  661. EXAMPLE:
  662.  
  663. After the command is entered, the display should appear as follows: 
  664.  
  665. E    MT March Addr.  Test......................Running ----------> 
  666.  
  667. If an error is encountered, then the memory location and other related 
  668. information are displayed.
  669.  
  670. E    MT March Addr.  Test......................Running ---------->.....  FAILED 
  671.  
  672. (error-related information) 
  673.  
  674. If no errors are encountered, then the display appears as follows:.
  675.  
  676. E    MT March Addr.  Test......................Running ----------> PASSED 
  677.  
  678. MT F    Walk a Bit Test    MT F
  679.  
  680.  
  681. 6.5.6  Walk a Bit Test
  682.  
  683.     332Diag>MT F 
  684.  
  685. MT F performs a walking bit test from start address to stop address.  The walking bit test for 
  686. each memory location is implemented in the following manner: 
  687.  
  688. Ñ    Write out a 32-bit value with only the lower bit set.
  689.  
  690. Ñ    Read it back and verify that the value written equals the one read.  Report any 
  691. errors.
  692.  
  693. Ñ    Shift the 32-bit value to move the bit up one position.
  694.  
  695. Ñ    Repeat the procedure (write, read, and verify) for all 32-bit positions.
  696.  
  697.  
  698. EXAMPLE:
  699.  
  700. After the command is entered, the display should appear as follows: 
  701.  
  702. F    MT Walk a bit Test ......................Running ----------> 
  703.  
  704. If an error is encountered, then the memory location and other related 
  705. information are displayed.
  706.  
  707. F    MT Walk a bit Test ......................Running ---------->.....  FAILED 
  708.  
  709. (error-related information) 
  710.  
  711. If no errors are encountered, then the display appears as follows: 
  712.  
  713. F    MT Walk a bit Test ......................Running ----------> PASSED
  714.  
  715. MT G    Refresh Test    MT G
  716.  
  717.  
  718. 6.5.7  Refresh Test
  719.  
  720.     332Diag>MT G 
  721.  
  722. MT G performs a refresh test from Start Address to Stop Address.  The refresh test has been 
  723. implemented in the following manner: 
  724.  
  725. Step 1.  For each memory location:
  726. Ñ    Write out value $FC84B730.
  727. Ñ    Verify that the location contains $FC84B730.
  728. Ñ    Proceed to next memory location.
  729.  
  730. Step 2.  Delay for 500 milliseconds (1/2 second).
  731.  
  732. Step 3.  For each memory location: 
  733. Ñ    Verify that the location contains $FC84B730.
  734. Ñ    Write out the complement of $FC84B730 ($037B48CF).
  735. Ñ    Verify that the location contains $037B48CF.
  736. Ñ    Proceed to next memory location.
  737.  
  738. Step 4.  Delay for 500 milliseconds.
  739.  
  740. Step 5.  For each memory location: 
  741. Ñ    Verify that the location contains $037B48CF.
  742. Ñ    Write out value $FC84B730.
  743. Ñ    Verify that the location contains $FC84B730.
  744. Ñ    Proceed to next memory location.
  745.  
  746.  
  747. EXAMPLE:
  748.  
  749. After the command is entered the display should appear as follows: 
  750.  
  751. G    MT Refresh Test..........................Running ----------> 
  752.  
  753. If an error is encountered, then the memory location and other related 
  754. information are displayed.
  755.  
  756. G    MT Refresh Test..........................Running ---------->.....  FAILED 
  757. (error-related information) 
  758.  
  759. If no errors are encountered, then the display appears as follows: 
  760.  
  761. G    MT Refresh Test..........................Running ----------> PASSED 
  762.  
  763. MT H    Random Byte Test    MT H
  764.  
  765.  
  766. 6.5.8  Random Byte Test
  767.  
  768.     332Diag>MT H 
  769.  
  770. MT H performs a random byte test from Start Address to Stop Address.  The random byte test 
  771. has been implemented in the following manner: 
  772.  
  773. Step 1.  A register is loaded with the value $ECA86420.
  774.  
  775. Step 2.  For each memory location: 
  776.  
  777. Ñ    Copy the contents of the register to the memory location, one byte at 
  778. a time.
  779. Ñ    Add $02468ACE to the contents of the register.
  780. Ñ    Proceed to next memory location.
  781.  
  782. Step 3.  Reload $ECA86420 into the register.
  783.  
  784. Step 4.  For each memory location: 
  785.  
  786. Ñ    Compare the contents of the memory to the register to verify that the 
  787. contents are good, one byte at a time.
  788. Ñ    Add $02468ACE to the contents of the register.
  789. Ñ    Proceed to next memory location.
  790.  
  791.  
  792. EXAMPLE:
  793.  
  794. After the command is entered, the display should appear as follows: 
  795.  
  796. H    MT Random Byte Test......................Running ----------> 
  797.  
  798. If an error occurs, then the memory location and other related information are 
  799. displayed.
  800.  
  801. H    MT Random Byte Test......................Running ---------->.....  FAILED 
  802. (error-related information) 
  803.  
  804. If no errors occur, then the display appears as follows: 
  805.  
  806. H    MT Random Byte Test......................Running ----------> PASSED 
  807.  
  808. MT I    Program Test    MT I
  809.  
  810.  
  811. 6.5.9  Program Test
  812.  
  813.     332Diag>MT I
  814.  
  815. MT I moves a program segment into RAM and executes it.  The implementation of this is as 
  816. follows: 
  817.  
  818. Step 1.    The program is moved into the RAM, repeating it as many times as 
  819. necessary to fill the available RAM (i.e., from Start Address to Stop 
  820. Address-8).  Only complete segments of the program are moved.  The 
  821. space remaining from the last program segment copied into the RAM to 
  822. Stop Address-8 is filled with NOP instructions.  Attempting to run this 
  823. test without sufficient memory (around 400 bytes) for at least one 
  824. complete program segment to be copied causes an error message to 
  825. be printed out: INSUFFICIENT MEMORY.
  826.  
  827. Step 2.    The last location, Stop Address, receives an RTS instruction.
  828.  
  829. Step 3.    Finally, the test performs a JSR to location Start Address.
  830.  
  831. Step 4.    The program itself performs a wide variety of operations, with the 
  832. results frequently checked and a count of the errors maintained.  
  833. locations are reported in the same fashion as any memory test failure 
  834. (refer to paragraph 6.8.13).
  835.  
  836.  
  837. EXAMPLE:
  838.  
  839. After the command is entered, the display should appear as follows: 
  840.  
  841. I    MT Program Test..........................Running ----------> 
  842.  
  843. If the operator has not allowed enough memory for at least one program 
  844. segment to be copied into the target RAM, then the following error message is 
  845. printed.  To avoid this, make sure that the Stop Address is at least 388 bytes 
  846. ($00000184) greater than the Start Address.
  847.  
  848. I    MT Program Test........................Running ---------->
  849.     Insufficient Memory
  850.     PASSED 
  851.  
  852. If the program (in RAM) detects any errors, then the location of the error and 
  853. other information is displayed.
  854.  
  855. I    MT Program Test........................Running ---------->.....  FAILED
  856. (error-related information) 
  857. If no errors occur, then the display appears as follows: 
  858. I    MT Program Test..........................Running ----------> PASSED 
  859.  
  860. MT J    Test and Set Test    MT J
  861.  
  862.  
  863. 6.5.10  Test and Set Test
  864.  
  865.     332Diag>MT J 
  866.  
  867. MT J performs a Test and Set (TAS) test from Start Address to Stop Address.  The test for 
  868. each memory location is implemented as follows:
  869.  
  870. Ñ    Clear the memory location to 0.
  871. Ñ    Test And Set the location (should set upper bit only).
  872. Ñ    Verify that the location now contains $80.
  873. Ñ    Proceed to next location (next byte).
  874.  
  875.  
  876. EXAMPLE:
  877.  
  878. After the command is entered, the display should appear as follows: 
  879.  
  880. J    MT TAS Test..............................Running ----------> 
  881.  
  882. If an error occurs, then the memory location and other related information are 
  883. displayed.
  884.  
  885. J    MT TAS Test..............................Running ---------->.....  FAILED 
  886. (error-related information) 
  887.  
  888. If no errors occur, then the display appears as follows: 
  889.  
  890. J    MT TAS Test..............................Running ----------> PASSED 
  891.  
  892. 6.5.11  Description of Memory Error Display Format
  893.  
  894. This paragraph is included to describe the format used to display errors during memory test E 
  895. through L.
  896.  
  897. The error reporting code is designed to conform to two rules:
  898.  
  899. a.    The first time an error occurs, headings are printed out prior to the  printing of 
  900. the values.
  901.  
  902. b.    Upon 20 memory errors, the printing of error messages ceases for the 
  903. remainder of the test.
  904.  
  905.  
  906. The following is an example of the display format:
  907.  
  908. FC    TEST ADDR    10987654321098765432109876543210    EXPECTED    READ
  909. 5    00010000    -----------------------X--------    00000100    00000000
  910. 5    00010004    -------------------X-------X----    FFFFEFFF    FFFFFFEF 
  911.  
  912. Each line displayed consists of five items: function code, test address, graphic bit report, 
  913. expected data, and read data.  The test address, expected data, and read data are displayed 
  914. in hexadecimal.  The graphic bit report shows a letter X at each errant bit position and a dash 
  915. (-) at each good bit position.
  916.  
  917. The heading used for the graphic bit report is intended to make the bit position easy to 
  918. determine.  Each numeral in the heading is the one's digit of the bit position.  For example, 
  919. the leftmost bad bit at test address $10004 has the numeral 2 over it.  Because this is the 
  920. second 2 from the right, the bit position is read 12 in decimal (base 10).
  921.  
  922. BERR    Bus Error Test    BERR
  923.  
  924.  
  925. 6.6  BUS ERROR TEST
  926.  
  927.     332Diag>BERR
  928.  
  929. BERR tests for local bus time-out and global bus time-out bus error conditions, including the 
  930. following:
  931.  
  932. Ñ    No bus error by reading from ROM
  933. Ñ    Local bus time-out by reading from an undefined FC location
  934. Ñ    Local bus time-out by writing to an undefined FC location
  935.  
  936.  
  937. EXAMPLE:
  938.  
  939. After the command has been issued, the following line is printed:
  940.  
  941. BERR    Bus Error Test...........................Running ----------> 
  942.  
  943. If a bus error occurs in the first part of the test, then the test fails and the display 
  944. appears as follows.
  945.  
  946. BERR    Bus Error Test...........................Running ---------->..... FAILED
  947. Got Bus Error when reading from ROM
  948.  
  949. If no bus error occurs in one of the other parts of the test, then the test fails and 
  950. the appropriate error message appears as one of the following:
  951.  
  952. No Bus Error when reading from BAD address space
  953. No Bus Error when writing to BAD address space
  954.  
  955. If all three parts of the test are completed correctly, then the test passes.
  956.  
  957. BERR    Bus Error Test............................Running ----------> PASSED 
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.